package brain.interprete;

/**
 * Instrucciones manejadas por el interprete para controlar al robot.
 * @author Luis Valdeavellano, 11218
 */
public class Instruccion {
    private String instruccion;
    private int param;
    
    /**
     * Constructor
     * @param instruccion
     * @param param 
     */
    public Instruccion(String instruccion, int param){
        this.instruccion = instruccion;
        this.param = param;
    }

    /**
     * Constructor de instruccion sin parametro
     * @param instruccion 
     */
    public Instruccion(String instruccion){
        this.instruccion = instruccion;
        this.param = 0;
    }
    
    /**
     * @return el codigo numerico de las distintas instrucciones
     */
    public int getCode(){
        if (instruccion.equals("move")) return 0;
        else if (instruccion.equals("rotate")) return 1;
        else if (instruccion.equals("eat")) return 2;
        else if (instruccion.equals("if")) return 3;
        else if (instruccion.equals("else")) return 4;
        else if (instruccion.equals("endif")) return 5;
        else return -1;
    }
    
    /**
     * @return the instruccion
     */
    public String getInstruccion() {
        return instruccion;
    }

    /**
     * @param instruccion the instruccion to set
     */
    public void setInstruccion(String instruccion) {
        this.instruccion = instruccion;
    }

    /**
     * @return the param
     */
    public int getParam() {
        return param;
    }

    /**
     * @param param the param to set
     */
    public void setParam(int param) {
        this.param = param;
    }
}
